package com.sfpay.coreplatform.member.persistence.dao;

import org.apache.ibatis.annotations.Param;

import com.sfpay.coreplatform.member.common.enums.MemberType;
import com.sfpay.coreplatform.member.valueobject.tmo.MemberLockInfo;

/**
 * 
 * 
 * 类说明：锁定表管理dao
 *  
 * 
 * <p>
 * 详细描述：
 *   
 * 
 * @author 313717
 *   
 * CreateDate: 2013-4-15
 */
public interface IMemberLockManageDao 
{

	/**
	 * 
	 *
	 * 方法说明：根据操作员(手机号，邮箱，登录名)，查询操作锁定信息
	 *
	 * @param mobile		手机
	 * @param email			mail
	 * @param loginName		登入名
	 * @param memberType	会员类型：个人或者企业
	 * @return
	 */
	public MemberLockInfo queryMemberLockInfo(@Param("mobile")String mobile,
			@Param("email")String email,@Param("loginName")String loginName,
			@Param("memberType")MemberType memberType);

	/**
	 * 
	 *
	 * 方法说明：删除操作员锁定信息
	 *
	 * @param memberNo
	 * @param operatorID
	 */
	public int deleteMemberLockInfo(@Param("memberNo")Long memberNo,@Param("operatorID") Long operatorID);

	/**
	 * 
	 *
	 * 方法说明：更新锁表状态
	 *
	 * @param memberNo			会员号
	 * @param operatorID		操作表ID：标示唯一操作员记录
	 * @param tryTimes			失败尝试次数
	 * @param needUpdateBeginTime 是否需要更新登入失败开始时间：true需要false不需要
	 */
	public int updateMemberLockInfo(@Param("memberNo")Long memberNo,@Param("operatorID") Long operatorID,
			@Param("tryTimes")int tryTimes,@Param("needUpdateBeginTime") boolean needUpdateBeginTime);

	/**
	 * 
	 *
	 * 方法说明：
	 *
	 * @param memberNo
	 * @param operatorId
	 */
	public void addMemberLockInfo(@Param("memberNo")Long memberNo, @Param("operatorID")Long operatorId);

}
